VBA代码大全030:如何用vba强制关闭word进程? 您所在的位置:网站首页 Vba 关闭userform退出所有程序 VBA代码大全030:如何用vba强制关闭word进程?

VBA代码大全030:如何用vba强制关闭word进程?

#VBA代码大全030:如何用vba强制关闭word进程?| 来源: 网络整理| 查看: 265

VBA代码大全030:如何用vba强制关闭word进程? 2021年2月21日 作者:水星Excel 5,458 次浏览 暂无评论

我们有时候需要从word中提取数据到excel中。

 

这时候一般的套路都是在excel vba中创建word应用程序实例,然后一番操作以后关闭word应用程序。

 

一般的结构都是形如下面这样的:

 

Sub 水星Excel() '前期引用 'Dim oWord As Word.Application 'Set oWord = New Word.Application '后期引用 'Set oWord = VBA.CreateObject("Word.Application") Dim oDoc Set oDoc = oWord.Documents.Open(sPath & "\abc.doc") '*********** '接下来是一段word数据的提取操作 '*********** '关闭打开的文档 oDoc.Close (False) '退出Word应用程序 oWord.Quit End Sub

 

这里会有个问题,就是最后的 oWord.Quit 好像是把word应用程序关闭了,但是事实上往往经常是关闭不成功的,如果打开系统任务管理器,会发现实际上word.exe进程仍然存在。

 

这样就会出现当再次运行这个代码时,出现重新加载word应用程序时卡顿的情况,导致代码长时间不响应。

 

这里介绍一段代码放在上面的结构的最后,可以强制的关闭任何存在的word.exe进程,从而扫清障碍。

 

代码如下:

 

Sub 水星Excel() Dim sCmd As String '强制关闭word进程 sCmd = "cmd /c Taskkill /im winword.exe /f /t" Shell sCmd End Sub

 

上述代码的意思是用dos 命令 taskkill 强制关闭word进程。

 

关于在vba中使用dos命令可以看往期文章VBA代码大全016:如何用vba执行DOS命令?

其它相关文章推荐:如何用vba在空白的word文档中逐段落的添加文本内容?如何用vba遍历word文档中的文本框?如何用vba获取word中所有的标题所在的页码?如何用vba获得word range对象所在的行的文本内容?如何用vba为页眉页脚设置或取消设置链接到前一节功能?如何用vba将同一文件下的所有03版本的word转换为最新版本? 分类 :  EXCEL VBA , VBA , VBA代码大全 , WORD VBA 标签 :  强制关闭word        

声明: 本站文章均属原创,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则视为侵权。如果想要每天都收到本站的技术文章推送,可以微信搜索公众号:水星Excel或者Excel_Office关注。其它事宜请加QQ:1722187970 或微信号:xycgenius 联系。 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有